#ifndef __JSON_H__
#define __JSON_H__

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <list.h>
#include <cJSON.h>
#include <shmem.h>
#include <log_utils.h>

union val_t
{
    int b_val;   // bool类型存储空间
    int i_val;   // 整形值存储空间
    float f_val; // 浮点值存储空间
};
struct modbus_data
{
    int key; // 唯一键值
    char name[128];
    int addr;
    int type; // 数据点类型
};
struct node_list
{
    struct modbus_data dataDomain;
    struct list_head pointDomain;
};

typedef struct modbus_json
{

    char ip[32];
    int port;
    char name[32];

} modbus_T;

struct std_node
{
    int key;             // 唯一键值
    int type;            // 数据点类型
    int dev_type;        // 属于哪个设备：m0或modbus
    union val_t old_val; // 变化上报后需要更新旧值
    union val_t new_val; // 从共享内存取出最新数据，放到new_val中
    int ret;             // 默认为-1，采集成功后设置为0，采集失败再置-1
};

struct msgbuf
{
    long mtype;
    char mdata[256];
};


int read_json(char*buf);
struct modbus_json *read_modbus_json_part(char *buff);
struct node_list * mb_node_list_init(char *buff,struct std_node *shm_addr);





#endif
